#ifndef __CACHEFLEX_DEVEL_FRAME_API__
#define __CACHEFLEX_DEVEL_FRAME_API__
#include "devel-headers/cf_frame_types.h"
#include "include/internal/cf_types.h"

extern int cf_get_store_level(cacheflex_t *cache, const cf_store_handle_t sh, int64_t *level);

extern int cf_get_level_num(cacheflex_t *cache, int64_t *level_num);

extern int cf_get_level_percent(cacheflex_t *cache, const int64_t level, int64_t *percent);

extern int cf_promote_store_level(cacheflex_t *cache, const cf_store_handle_t sh);

extern int cf_demote_store_level(cacheflex_t *cache, const cf_store_handle_t sh);

extern int cf_washout(cacheflex_t *cache, const cf_store_handle_t sh);

extern void *cf_get_index_instance(cacheflex_t *cache);

extern void *cf_get_store_instance(cacheflex_t *cache);

extern void *cf_get_reclaim_instance(cacheflex_t *cache);

extern void cf_accessed(cacheflex_t *cache, cf_item_handle_t *ih);

extern void *cf_malloc(size_t size);

extern void cf_free(void *ptr);

static inline cf_kv_ops_t *CF_GET_KV_OPS(cacheflex_t *cache)
{
    return cache->kv_ops;
}

#endif // __CACHEFLEX_DEVEL_FRAME_API__
